package unq.tpi.persistencia.alumnos.dao.mock;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import unq.tpi.persistencia.alumnos.dao.AlumnoDAO;
import unq.tpi.persistencia.alumnos.model.Alumno;
import unq.tpi.persistencia.alumnos.model.Materia;

import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;

public class MockAlumnoDAO implements AlumnoDAO {

	private Map<String,Alumno> alumnos = new HashMap<String, Alumno>();

	public Alumno getPorLegajo(String legajo) {
		return alumnos.get(legajo);
	}

	public void save(Alumno alumno) {
		alumnos.put(alumno.getLegajo(), alumno);
	}
	
	public void delete(Alumno alumno){
		alumnos.remove(alumno);
	}
	
	public List<Alumno> getInscriptosA(final Materia materia) {
		return new ArrayList<Alumno>(Collections2.filter(alumnos.values(), new Predicate<Alumno>() {
			public boolean apply(Alumno a){
				return a.isInscripto(materia);
			}
		}));
	}
}
